const express = require('express');
//创建路由
const route = express.Router()
const advModel = require('../db/model/advModel')
const fs = require('fs')
const path = require('path')
const isLoginMiddle = require('../middleware/isLoginMiddle');
//删除广告的请求
route.delete('/deleteAdv', isLoginMiddle, async (req, res) => {
   //请求格式query，_id是我们自己添加的自定义属性，data-id
    const {
        _id
    } = req.query
    //删图片的逻辑
    //通过_id查找数据库，找到删除的广告列表，将地址拿出来用于删除文件
    try {
        //首先去数据库查询当前_id的图片
        const {
            advHref
        } = await advModel.findOne({
            _id
        })
        console.log(advHref);
         //将地址切割，拿到文件名， []/[文件夹名]/[文件名]
        const imgName = advHref.split("/")[2]
        // 通过文件名去删除文件，拼接一个绝对路径，第二个参数为一个回调函数
        fs.unlink(path.resolve(__dirname, "../upload", imgName), () => {
          console.log('删除成功')
        })
    } catch (e) {
        //删除失败的提示，删除失败直接return结束代码执行
        console.log("删除图片逻辑有错" + e.message);
        return res.send({
            code: 10001,
            msg: "删除图片逻辑有错" + e.message,
            data: null
        })
    }
    try {
        //拿到删除的结果，结果理由一个deletedCont属性表示删除的个数
        const deleteResult = await advModel.deleteOne({
            _id
        })
        // console.log(deleteResult);
        //大于0表示删除成功
        if (deleteResult.deletedCount > 0) {
            res.send({
                code: 10000,
                msg: "删除广告列表成功",
                data: null
            })
        }
    } catch (e) {
        console.log("删除广告列表失败" + e.message);
        res.send({
            code: "10001",
            msg: "删除广告列表异常" + e.message,
            data: null
        })
    }
})
module.exports = route;